package cn.codergege.kotlinbasics.controlflow

import org.junit.jupiter.api.Test
import org.junit.jupiter.api.Assertions.*
import org.springframework.boot.test.context.SpringBootTest

@SpringBootTest
class BreakDemoTest {
    @Test fun testBreak() {
        // 声明一个 list, Kotlin 中不需要 new 关键字的
        val list = ArrayList<Int>()
        for(a in 1..3) {
            for(b in 1..3) {
                list.add(b)
                if(b == 2)
                    break
            }
        }
        assertTrue(list.size == 6) // list 中应该是 1, 2, 1, 2, 1, 2
    }

    @Test fun testBreakLabel() {
        val list = ArrayList<Int>()
        outer@for(a in 1..3) {
            inner@for(b in 1..3) {
                list.add(b)
                if(b == 2)
                    break@outer // 跳出 outer 标签
            }
        }
        assertTrue(list.size == 2) // list 中应该是 1, 2
        assertTrue(list[0] == 1)
        assertTrue(list[1] == 2)
    }
}